package opearaion;

import book.Book;
import book.BookList;

/**
 * Created with IntelliJ IDEA.
 * Description:
 * User: LXW
 * Date: 2021-12-09
 * Time: 12:13
 */
public class DelOperation implements IOperation{
    @Override
    public void work(BookList booklist) {
        System.out.println("删除图书");
        System.out.println("请输入你要删除的图书的名字");
        String name = scanner.nextLine();
        int currentSize = booklist.getSize(); // 当前有效书本数量
        int index = 0;    // 定义一个index用来保存要删除的图书下标
        int i = 0;
        for (; i < currentSize; i++) {      // 遍历图书数组
            Book book = booklist.getPos(i);    // 获得pos位置的图书信息
            if (name.equals(book.getName())) {  // 如果当前图书的名字与要删除图书名字相符就让index保存此下标并退出循环
                index = i;
                break;
            }
        }
        if (i > currentSize) {
            System.out.println("没有你要删除的书");
            return;
        }
        for (int j = index; j < currentSize-1; j++) {    //
            Book book = booklist.getPos(j + 1);  // 获得j+1位置的图书
            booklist.setPos(j,book);    // 将j+1的图书移到j的位置
        }
        booklist.setPos(currentSize,null);   // 把之前最后一本书的引用置空，防止内存泄露
        booklist.setSize(currentSize - 1);    // 当前图书数量减1
        System.out.println("删除成功");
    }
}
